Attempts have been made to create pattern recognition systems using programming and hardware. The state of the art includes neural nets. Neural nets typically comprise three layers—an input layer, a hidden layer, and an output layer. The hidden layer comprises a series of nodes which serve to perform a weighted sum of the input to form the output. Output for a given input is compared to the desired output, and a back projection of the errors is carried out on the hidden layer by changing the weighting factors at each node, and the process is reiterated until a tolerable result is obtained. The strategy of neural nets is analogous to the sum of least squares algorithms. These algorithms are adaptive to provide reasonable output to variations in input, but they can not create totally unanticipated useful output or discover associations between multiple inputs and outputs. Their usefulness to create novel conceptual content is limited; thus, advances in pattern recognition systems using neural nets is limited.